package demo1;

import java.util.Arrays;

class MinStack {
      int[] array ;
      int minIndex ;
      int top ;
    public MinStack() {
         array = new int[10];
    }
    
    public void push(int val) {
        if(top == 0){
           minIndex = 0 ;
        }else{
           if(array[minIndex] > val){
            minIndex = top ;
           }
        }
        array[top++] = val ;
        if(top == array.length){
            array = Arrays.copyOf(array , array.length * 2) ;
        } 
    }
    
    public void pop() {
        if(top == 0){
            return ;
        }
        top -- ;
        if(top != 0){
            if(minIndex == top){
              minIndex = 0 ;
              for(int i = 1 ; i <top ; i ++){
                 if(array[minIndex] > array[i]){
                    minIndex = i ;
                 }
              }
            }
        }else{
            minIndex = 0 ;
        }

    }
    
    public int top() {
        if(top == 0){
            return -1 ;
        }
        return array[top-1];
    }
    
    public int getMin() {
        if(top == 0){
            return -1 ;
        }
        return array[minIndex];
    }
}